package org.flyer.toolFrame.component;

import org.flyer.toolFrame.service.GitHubToolService;
import org.flyer.toolFrame.util.MenuUtil;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Set;


@Component("gitHubTool")
public class GitHubTool {
    /**
     *  github 工具组件
     */
    @Resource
    GitHubToolService gitHubToolService;
    public void setGitHubHost(){
        /**
         * 设置Host
         * 1.读取静态Host数据
         * 2.使用爬虫在ipip.net进行域名查询，将结果保存
         * 3.生成host格式的字符串
         * 4.写入host文件末尾（可选）
         */
        System.out.println("--开始读取数据...--");
        List<String> gitHubHostList = gitHubToolService.getGitHubHost();
        System.out.println("--开始读取解析地址...--");
        Map<String,String> hostMapping=gitHubToolService.getHostMapping(gitHubHostList);
        System.out.println("--开始生成格式化Host...--");
        StringBuffer stringBuffer=new StringBuffer("# github Start\n");
        Set<Map.Entry<String, String>> entries = hostMapping.entrySet();
        for (Map.Entry<String, String> entry:entries){
            stringBuffer.append(entry.getValue()+" "+entry.getKey()+"\n");
        }
        stringBuffer.append("# github End\n");
        System.out.println(stringBuffer.toString());
        boolean b = MenuUtil.checkBox("是否写入Host文件中?");
        if (b){//写入
            System.out.println("写入");
        }else{//结束
            System.out.println("请您手动将上述输出复制到 \"C:\\Windows\\System32\\drivers\\etc\\hosts\" 的末尾，并在命令提示符中输入 \"ipconfig /flushdns\" 刷新Host缓存 ");
        }
    }
}
